Class: Gitara::Dsl
- Inherits:
-
Valuable
- Object
- Valuable
- Gitara::Dsl
- Extended by:
- DslMacros
- Defined in:
- lib/gitara/dsl.rb
Instance Attribute Summary collapse
Instance Method Summary collapse
- #add(child, &block) ⇒ Object
- #add_names(options = {}, &block) ⇒ Object
- #alternative(&block) ⇒ Object
- #arranger($1(value)) ⇒ Object
- #bar(*names, &block) ⇒ Object
- #chords(name, value = nil) ⇒ Object
- #composer ⇒ Object
- #instrument ⇒ Object
- #key ⇒ Object
- #line(*names, &block) ⇒ Object
- #midi_instrument ⇒ Object
- #node ⇒ Object
- #notes(value) ⇒ Object
- #partial(duration) ⇒ Object
- #repeat(value, &block) ⇒ Object
- #score(*names, &block) ⇒ Object
- #stanza(*names, &block) ⇒ Object
- #string_tunings ⇒ Object
- #tempo ⇒ Object
- #time ⇒ Object
- #title ⇒ Object
- #transposition ⇒ Object
Methods included from DslMacros
Instance Attribute Details
#$1($1) ⇒ Object
9 |
# File 'lib/gitara/dsl.rb', line 9 has_value :node |
Instance Method Details
#add(child, &block) ⇒ Object
25 26 27 28 |
# File 'lib/gitara/dsl.rb', line 25 def add(child, &block) self.node.add child Dsl.new(:node => child).instance_eval(&block) if block_given? end |
#add_names(options = {}, &block) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/gitara/dsl.rb', line 30 def add_names( = {}, &block) names = [:names].empty? ? [nil] : [:names] node_class = [:node_class] children = names.map{|name| attributes = ([:options] || {}).merge(:name => name) node_class.new(attributes) } children.each do |child| add child, &block end end |
#alternative(&block) ⇒ Object
44 45 46 |
# File 'lib/gitara/dsl.rb', line 44 def alternative(&block) add Node::Alternative.new, &block end |
#arranger($1(value)) ⇒ Object
14 |
# File 'lib/gitara/dsl.rb', line 14 can_add_property :arranger |
#bar(*names, &block) ⇒ Object
48 49 50 |
# File 'lib/gitara/dsl.rb', line 48 def (*names, &block) add_names :names => names, :node_class => Node::Bar, &block end |
#chords(name, value = nil) ⇒ Object
52 53 54 |
# File 'lib/gitara/dsl.rb', line 52 def chords(name, value=nil) add Node::ChordSet.new(:name => name, :value => value) end |
#composer ⇒ Object
15 |
# File 'lib/gitara/dsl.rb', line 15 can_add_property :composer |
#instrument ⇒ Object
16 |
# File 'lib/gitara/dsl.rb', line 16 can_add_property :instrument |
#key ⇒ Object
17 |
# File 'lib/gitara/dsl.rb', line 17 can_add_property :key |
#line(*names, &block) ⇒ Object
56 57 58 59 60 61 |
# File 'lib/gitara/dsl.rb', line 56 def line(*names, &block) args = {} args[:options] = names.pop if names.last.is_a?(Hash) args.merge!(:names => names, :node_class => Node::Line) add_names args, &block end |
#midi_instrument ⇒ Object
18 |
# File 'lib/gitara/dsl.rb', line 18 can_add_property :midi_instrument |
#node ⇒ Object
9 |
# File 'lib/gitara/dsl.rb', line 9 has_value :node |
#notes(value) ⇒ Object
63 64 65 |
# File 'lib/gitara/dsl.rb', line 63 def notes(value) add Node::NoteSet.new(:value => value) end |
#partial(duration) ⇒ Object
67 68 69 |
# File 'lib/gitara/dsl.rb', line 67 def partial(duration) node.specified_duration = duration end |
#repeat(value, &block) ⇒ Object
71 72 73 |
# File 'lib/gitara/dsl.rb', line 71 def repeat(value, &block) add Node::Repeat.new(:value => value), &block end |
#score(*names, &block) ⇒ Object
75 76 77 |
# File 'lib/gitara/dsl.rb', line 75 def score(*names, &block) add_names :names => names, :node_class => Node::Score, &block end |
#stanza(*names, &block) ⇒ Object
79 80 81 |
# File 'lib/gitara/dsl.rb', line 79 def stanza(*names, &block) add_names :names => names, :node_class => Node::Stanza, &block end |
#string_tunings ⇒ Object
19 |
# File 'lib/gitara/dsl.rb', line 19 can_add_property :string_tunings |
#tempo ⇒ Object
20 |
# File 'lib/gitara/dsl.rb', line 20 can_add_property :tempo |
#time ⇒ Object
21 |
# File 'lib/gitara/dsl.rb', line 21 can_add_property :time |
#title ⇒ Object
22 |
# File 'lib/gitara/dsl.rb', line 22 can_add_property :title |
#transposition ⇒ Object
23 |
# File 'lib/gitara/dsl.rb', line 23 can_add_property :transposition |